Lookerのテキストテーブル(Table)でNULL値を0として表示する #looker
小ネタです。
Lookerの可視化形式の1つである『テキストテーブル(Table)』は使い勝手の良いものの1つですが、該当するセルの値が存在しない(NULL)時は、数値が表示されず空の値が表示される仕様になっています。これはこれで良いんですが、場合によってはそういう場所も『値が無い=ゼロ(0)として表示』させたいというケースもあるかもしれません。当エントリではそんな時に使えるワザをご紹介したいと思います。
遭遇するケース
LookerのテキストテーブルでNULLが表示するケースを再現してみます。毎度のブログ投稿データですが、データ(DATA)タブでは投稿本数がゼロ本の月は数値が表示されていません。また、検証したのは2019年10月ですが未来の月(2019年11月〜12月)まで含めた形で検索条件を指定すると、未来の部分も(当然ながら)投稿本数がゼロ本なので結果としては数値が表示されない形となります。
可視化(VISUALIZATION)タブでテキストテーブルを表示してみます。上記同様の表示結果となりました。
テーブル計算(Table Calculations)の「coalesce」関数を使う
ここでは、Lookerの機能である「テーブル計算(Table Calculations)」で提供されている「coalesce」関数を使います。まずは投稿本数(t_blogposts.count)を検証し、値が存在していればその値を、無ければゼロ(0)を表示する...と設定しています。
投稿本数(null to zero) coalesce(${t_blogposts.count},0)
テーブル計算での値を表示させると、以下のようにNULLの部分がゼロで表示されました!元々使っていた項目はここでは可視化上では非表示(Hide from Visualization)とします。
可視化上でも該当箇所がゼロで表示されていることを確認出来ました。(がしかし、行の合計を表示させたままにしている部分、セルが1個ズレて表示されてしまっているようです...)
ここでは一旦、表示オプションで「行合計を非表示」とすることで、
ちゃんとした表示内容に落ち着きました。
ゼロが表示出来ると、この部分を条件式で表示切り替えしたくなってきます。既存デフォルトルールを削除の上、テーブル計算で作成した「投稿本数」の値がゼロ(0)ならば、背景色及び文字色を変更せよ、というルールを作成、その後に既存デフォルトルールを作成し直しました。(※ルールは先勝ち&前者のルールを先に適用させたかったのでこういう構成としました)
上記設定を踏まえたテキストテーブルの表示結果が以下となります。
まとめ
というわけで、Lookerにおける『テキストテーブルでのNULL値をゼロ(0)に置き換えて表示する』テクニックのご紹介でした。このテクニックは意外と使用頻度も高いと思いますので是非覚えておき、御活用頂ければと思います。